package ar.com.arkios.kfcon4d.dao;

import ar.com.arkios.kfcon4d.util.RegisterBuilder;
import ar.com.arkios.kfconmodelo.modelo.Contramarca;
import ar.com.arkios.j4d.opDataArray;
import java.util.List;
import org.apache.log4j.Logger;

/**
 * <p>
 * 
 * </p>
 */
public class ContramarcaDAO extends GenericDAO<Contramarca> {
    
    private static final Logger miLogger = Logger.getLogger(ContramarcaDAO.class);
    
    /** Nombre de la tabla Especies */
    private static final String CONTRAMARCAS = "Contramarcas";
    
    // Columnas de la tabla Especies
    private static final String CONTRAMARCAS_COD = "Cod";
    private static final String CONTRAMARCAS_CONTRAMARCA = "Contramarca";
    private static final String CONTRAMARCAS_DEFAULT = "Default";
    private static final String CONTRAMARCAS_DESC_TARJETON = "DescripcionTarjeton";
    private static final String CONTRAMARCAS_VIA_TRANSPORTE = "ViaTransporte";
    
    /** Nombres de las columnas a ser utilizadas de la tabla Especies. */
    private static final String[] ESPECIES_COLUMNAS = {CONTRAMARCAS_COD, CONTRAMARCAS_CONTRAMARCA, CONTRAMARCAS_DEFAULT, CONTRAMARCAS_DESC_TARJETON, CONTRAMARCAS_VIA_TRANSPORTE};
    
    /** Nombres de las columnas a ser utilizada como PK de Especies. */
    private static final String[] ESPECIES_PK = {CONTRAMARCAS_COD};
    

    @Override
    protected String getEntidadTableName() {
        return CONTRAMARCAS;
    }

    @Override
    protected String getPKProperty() {
        return "miCodigo";
    }

    @Override
    protected opDataArray[] mapListEntidadTo4D(List<Contramarca> laLista) {
        opDataArray[] losDatosContramarcas = new opDataArray[getMiEntidadFields().mSize];

        for (int i = 0; i < losDatosContramarcas.length; i++) {
            losDatosContramarcas[i] = new opDataArray(laLista.size());
        }

        int i = 0;
        for (Contramarca contramarca : laLista) {            
            RegisterBuilder contramarcasRegisterBuilder = new RegisterBuilder(getMiEntidadFields());
            contramarcasRegisterBuilder.setData(CONTRAMARCAS_COD, contramarca.getMiCodigo());
            contramarcasRegisterBuilder.setData(CONTRAMARCAS_CONTRAMARCA, contramarca.getMiDescripcion());
            contramarcasRegisterBuilder.setData(CONTRAMARCAS_DEFAULT, contramarca.getMiValorDefecto());
            contramarcasRegisterBuilder.setData(CONTRAMARCAS_DESC_TARJETON, contramarca.getMiDescTarjeton());
            contramarcasRegisterBuilder.setData(CONTRAMARCAS_VIA_TRANSPORTE, contramarca.getMiTipotransporte());
            
            opDataArray dataAux = contramarcasRegisterBuilder.getDataArray();
            for (int j = 0; j < getMiEntidadFields().mSize; j++) {
               losDatosContramarcas[j].mDataArray[i] = dataAux.mDataArray[j];
            }
            i += 1;
        }
        return losDatosContramarcas;
    }
    
    @Override
    protected String[] getEntidadFieldsNames(){
        return ESPECIES_COLUMNAS;
    }
    
    @Override
    protected String[] getEntidadPKFieldsNames(){
        return ESPECIES_PK;
    }
}